%ifndef __NASMX_SECUR32_INC__
%define __NASMX_SECUR32_INC__

IMPORT AcceptSecurityContext, 36
IMPORT AcquireCredentialsHandleA, 36
IMPORT AcquireCredentialsHandleW, 36
IMPORT AddCredentialsA, 32
IMPORT AddCredentialsW, 32
IMPORT AddSecurityPackageA, 8
IMPORT AddSecurityPackageW, 8
IMPORT ApplyControlToken, 8
IMPORT CompleteAuthToken, 8
IMPORT DecryptMessage, 16
IMPORT DeleteSecurityContext, 4
IMPORT DeleteSecurityPackageA, 4
IMPORT DeleteSecurityPackageW, 4
IMPORT EncryptMessage, 16
IMPORT EnumerateSecurityPackagesA, 8
IMPORT EnumerateSecurityPackagesW, 8
IMPORT ExportSecurityContext, 16
IMPORT FreeContextBuffer, 4
IMPORT FreeCredentialsHandle, 4
IMPORT GetComputerObjectNameA, 12
IMPORT GetComputerObjectNameW, 12
IMPORT GetUserNameExA, 12
IMPORT GetUserNameExW, 12
IMPORT ImpersonateSecurityContext, 4
IMPORT ImportSecurityContextA, 16
IMPORT ImportSecurityContextW, 16
IMPORT InitSecurityInterfaceA, 0
IMPORT InitSecurityInterfaceW, 0
IMPORT InitializeSecurityContextA, 48
IMPORT InitializeSecurityContextW, 48
IMPORT LsaCallAuthenticationPackage, 28
IMPORT LsaConnectUntrusted, 4
IMPORT LsaDeregisterLogonProcess, 4
IMPORT LsaEnumerateLogonSessions, 8
IMPORT LsaFreeReturnBuffer, 4
IMPORT LsaGetLogonSessionData, 8
IMPORT LsaLogonUser, 56
IMPORT LsaLookupAuthenticationPackage, 12
IMPORT LsaRegisterLogonProcess, 12
IMPORT LsaRegisterPolicyChangeNotification, 8
IMPORT LsaUnregisterPolicyChangeNotification, 8
IMPORT MakeSignature, 16
IMPORT QueryContextAttributesA, 12
IMPORT QueryContextAttributesW, 12
IMPORT QueryCredentialsAttributesA, 12
IMPORT QueryCredentialsAttributesW, 12
IMPORT QuerySecurityContextToken, 8
IMPORT QuerySecurityPackageInfoA, 8
IMPORT QuerySecurityPackageInfoW, 8
IMPORT RevertSecurityContext, 4
IMPORT SaslAcceptSecurityContext, 36
IMPORT SaslEnumerateProfilesA, 8
IMPORT SaslEnumerateProfilesW, 8
IMPORT SaslGetContextOption, 20
IMPORT SaslGetProfilePackageA, 8
IMPORT SaslGetProfilePackageW, 8
IMPORT SaslIdentifyPackageA, 8
IMPORT SaslIdentifyPackageW, 8
IMPORT SaslInitializeSecurityContextA, 48
IMPORT SaslInitializeSecurityContextW, 48
IMPORT SaslSetContextOption, 16
IMPORT SealMessage, 16
IMPORT SetContextAttributesA, 16
IMPORT SetContextAttributesW, 16
IMPORT SetCredentialsAttributesA, 16
IMPORT SetCredentialsAttributesW, 16
IMPORT TranslateNameA, 20
IMPORT TranslateNameW, 20
IMPORT UnsealMessage, 16
IMPORT VerifySignature, 16

%ifdef UNICODE

%define AcquireCredentialsHandle AcquireCredentialsHandleW
%define AddCredentials AddCredentialsW
%define AddSecurityPackage AddSecurityPackageW
%define DeleteSecurityPackage DeleteSecurityPackageW
%define EnumerateSecurityPackages EnumerateSecurityPackagesW
%define GetComputerObjectName GetComputerObjectNameW
%define GetUserNameEx GetUserNameExW
%define ImportSecurityContext ImportSecurityContextW
%define InitSecurityInterface InitSecurityInterfaceW
%define InitializeSecurityContext InitializeSecurityContextW
%define QueryContextAttributes QueryContextAttributesW
%define QueryCredentialsAttributes QueryCredentialsAttributesW
%define QuerySecurityPackageInfo QuerySecurityPackageInfoW
%define SaslEnumerateProfiles SaslEnumerateProfilesW
%define SaslGetProfilePackage SaslGetProfilePackageW
%define SaslIdentifyPackage SaslIdentifyPackageW
%define SaslInitializeSecurityContext SaslInitializeSecurityContextW
%define SetContextAttributes SetContextAttributesW
%define SetCredentialsAttributes SetCredentialsAttributesW
%define TranslateName TranslateNameW

%else  ;// ANSI

%define AcquireCredentialsHandle AcquireCredentialsHandleA
%define AddCredentials AddCredentialsA
%define AddSecurityPackage AddSecurityPackageA
%define DeleteSecurityPackage DeleteSecurityPackageA
%define EnumerateSecurityPackages EnumerateSecurityPackagesA
%define GetComputerObjectName GetComputerObjectNameA
%define GetUserNameEx GetUserNameExA
%define ImportSecurityContext ImportSecurityContextA
%define InitSecurityInterface InitSecurityInterfaceA
%define InitializeSecurityContext InitializeSecurityContextA
%define QueryContextAttributes QueryContextAttributesA
%define QueryCredentialsAttributes QueryCredentialsAttributesA
%define QuerySecurityPackageInfo QuerySecurityPackageInfoA
%define SaslEnumerateProfiles SaslEnumerateProfilesA
%define SaslGetProfilePackage SaslGetProfilePackageA
%define SaslIdentifyPackage SaslIdentifyPackageA
%define SaslInitializeSecurityContext SaslInitializeSecurityContextA
%define SetContextAttributes SetContextAttributesA
%define SetCredentialsAttributes SetCredentialsAttributesA
%define TranslateName TranslateNameA

%endif  ;// UNICODE

%endif  ;// __NASMX_SECUR32_INC__
